package com.yusheng.tr.common.core.entity.multi;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * 报表类型
 * </p>
 *
 * @author author
 * @since 2023-10-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("report_info")
@Schema(title = "ReportInfo对象",description = "报表信息表")
public class ReportInfoEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(name = "主键")
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    @TableField(value = "report_type_id")
    @NotEmpty(message = "报表类型主键不能为空")
    @Schema(name = "报表类型主键")
    private String reportTypeId;

    @TableField(value = "name")
    @NotEmpty(message = "字段名称不能为空")
    @Schema(name = "字段名称")
    private String name;

    @TableField(value = "val")
    @Schema(name = "字段值;填写则是默认值")
    private String val;

    @TableField(value = "input_type")
    @Schema(name = "输入类型型;Input、Number、Radio、TimePick、DatePick、DateTimePick、Select、Check、Text、TextArea")
    private String inputType;

    @TableField(value = "row_num")
    @Schema(name = "所在行数")
    private Integer rowNum;

    @TableField(value = "col_num")
    @Schema(name = "所在列数")
    private Integer colNum;

    @TableField(value = "row_span")
    @Schema(name = "合并行")
    private Integer rowSpan;

    @TableField(value = "col_span")
    @Schema(name = "合并列")
    private Integer colSpan;

    @TableField(value = "is_edit")
    @Schema(name = "是否编辑;0是、1否")
    private Integer isEdit;

    @TableField(value = "is_check")
    @Schema(name = "是否校验;0是、1否")
    private Integer isCheck;

    @TableField(value = "is_null")
    @Schema(name = "是否为空;0是、1否")
    private Integer isNull;

    @TableField(value = "length")
    @Schema(name = "长度")
    private Integer length;

    @TableField(value = "regular")
    @Schema(name = "正则表达式")
    private String regular;

    @TableField(value = "extend_rule")
    @Schema(name = "扩展规则")
    private String extendRule;

    private String prop;
    private String label;
    private String append;
    private String offset;
    private String position;
    private String placeHolder;
    private String labelWidth;
    private String formItemWidth;
    private String size;
    private String isBorder;
}
